package com.hy.study.utils;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 自定义实现lruc 缓存
 * @author huyong
 * @date 2024 年 01 月 16 日 11:16: 12
 */
public class LRUCache<K,V> extends LinkedHashMap<K,V> {
    private int size;

    public LRUCache( int size) {
        super(size,0.75f,true);
        this.size = size;
    }

    @Override
    protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
        //当元素个数超过指定的大小时，淘汰最老的数据
        return size()>size;
    }

    public static void main(String[] args) {
        LRUCache<String, Integer> cache = new LRUCache<>(4);
        for (int i = 0; i < 8; i++) {
            if (i == 6) {
                cache.get("一灰灰blog_2");
            }
            cache.put("一灰灰blog_" + i, i);
            System.out.println(i + ":" + cache);
        }
        System.out.println(cache.size);
    }
}
